This is an idea of mine for improving the Macintosh user interface.With the current MultiFinder, switching applications is easy to do by accident and doesnŐt always cause a noticeable change in the screen display. I suggest that the application menu bar ought to "slide off" the screen whenever it is suspended, and have written an INIT that does this. BACKGROUND The inspiration came from running introduction to Macintosh courses here at the university. I noticed a lot of students had trouble with application switching. They would click on the wrong window and not notice the change of application, or select the wrong application menu choice and end up in an application with no windows open. The visual cues, a tiny icon changing in the top right corner and a window activation, are a bit too subtle for new users - especially if the application doesn't have any windows to activate. Afterwards I thought about it occasionally until one day I remembered Andy Hertzfelds Switcher. (For you youngsters out there, this was the predecessor to MultiFinder. Each application took over the whole screen. When you switched, all the windows, palettes, and whatnot scrolled off one edge and the new application came in from the other like a HyperCard effect.) Even though we now expect applications to share the screen real estate, the menu bar is still exclusive so why not scroll it to show the change? Hence this INIT. When installed, the menubar slides across the screen everytime you switch from the Finder to an application, or from one application to another. The process adds a very slight delay to the switch, less than ten ticks. It leaves the help and application menus where they are, since it is meant to convey that the application environment is changing, not the whole system. If you want a demonstration without installing and rebooting, run the MenuBarSlide Demo application. It slides its own menu bar when suspended. HOW IT WORKS The INIT puts a patch on DrawMenuBar that looks for a change to the low memory global MenuList, and slides the old menu bar off before drawing the new. Intercepting suspend events sent to applications would have been the easiest and cleanest solution, but unfortunately it just doesn't work. GNEFilter procs don't get called for OS events. Known problems: * It can't detect a switch from an application to the Finder so the menu bar doesn't slide when you do so.I spent a lot of time trying to figure out how to detect that, but never found a reliable solution. Any ideas? * HyperCard does its own menu bar drawing, so the menu bar doesn't slide. The source code is also freely distributable. The INIT is written in MPW Assembler, the demo app in THINK Pascal 4. Mail me if you would like a copy. CREDITS Thanks to Matthew Axsom (chewey@nesw.MV.COM) for code to find out where the right edge of the application menus really is, Brian Stern (Jaeger@fquest.com) for the INIT Writing FAQ, and the many people who took the trouble to try out the original demo and encouraged me to develop it further. Hugh Fisher Australian National University Email: Hugh.Fisher@anu.edu.au Copyright (c) Hugh Fisher 1995. Permission granted to freely distribute as you wish. This code is guaranteed to be of standard commercial quality: I'll try to fix any problems you find, but it's not MY fault even if your computer explodes.